B. Verbs
Monads and Dyads. Verbs have two definitions,
one for the monadic case (one argument),
and one for the dyadic case (two arguments).
The dyadic definition applies if the verb is preceded by
a suitable left argument, that is, any noun that is not itself
an argument of a conjunction; otherwise the monadic definition applies.
The monadic case of a verb is also called a monad,
and we speak of the monad % used in the
phrase %4 ,
and of the dyad % used in 3%4 .
Either or both may have empty domains.
Ranks of Verbs. The notion of verb rank is closely
related to that of noun rank: a verb of rank k applies
to each of the k-cells of its argument.
For example (using the array b from
Section A):
,b abcdefghijklmnopqrstuvwx ,"2 b ,"_1 b abcdefghijkl abcdefghijkl mnopqrstuvwx mnopqrstuvwx
Since the verb ravel (denoted by ,)
applies to its entire argument, its rank is said to be unbounded.
The rank conjunction " used in the phrase ,"2
produces a related verb of rank 2 that ravels each of the 2-cells
to produce a result of shape 2 by 12.
The shape of a result is the frame (relative to the cells to which
the verb applies) catenated with the shape produced by applying
the verb to the individual cells.
Commonly these individual shapes agree, but if not,
they are first brought to a common rank
by introducing leading unit axes to any of lower rank,
and are then brought to a common shape by
padding with an appropriate fill element: space for a character
array, 0 for a numeric array, and a boxed empty list
for a boxed array. For example:
i."0 s=: 2 3 4 >'I';'was';'here' 0 1 0 0 I 0 1 2 0 was 0 1 2 3 here
The dyadic case of a verb has two ranks, governing the
left and right arguments. For example:
p=: 'abc' q=: 3 5$'wake read lamp ' p,"0 1 q awake bread clamp
Finally, each verb has three intrinsic ranks:
monadic, left, and right. The definition of any verb need specify
only its behaviour on cells of the intrinsic ranks, and
the extension to arguments of higher rank occurs systematically.
The ranks of a verb merely place upper limits on the ranks of
the cells to which it applies; its domain may include
arguments of lower rank. For example, Matrix Inverse (%.)
has monadic rank 2, but treats the case of a vector as
a one-column matrix.
Agreement. In the phrase p v q,
the arguments of v must agree in the sense that one
frame must be a prefix of the other, as in p,"0 1 q above,
and in the following examples:
p ,"1 1 q 3 4 5 * i. 3 4 abcwake 0 3 6 9 abcread 16 20 24 28 abclamp 40 45 50 55 (i.3 4) * 3 4 5 0 3 6 9 16 20 24 28 40 45 50 55
If a frame contains 0, the verb is applied
to a cell of fills. For example:
($ #"2 i. 1 0 3 4);($ 2 3 %"1 i. 0 2) +---+---+ |1 0|0 2| +---+---+ ($ $"2 i. 1 0 3 4);($ 2 3 %/"1 i. 0 4) +-----+-----+ |1 0 2|0 2 4| +-----+-----+